二进制数问题``急在线等

来源:百度知道 编辑:UC知道 时间:2024/06/28 04:22:07
高手门 请教一个 二进制数的问题` ` 呵呵 初学 `
为什么000=0 001=1 010=2 011=3 100=4 101=5 110=6 111=7
请问 这个是 必须背下来的? 还是 有方法算出来的 请问算的话 这些是怎么 算出来的` ` 说详细点 谢谢了` ` 还有 16进制数的算法 ` 说详细哦 我是菜鸟``
请1楼的在说详细点 010 = 2
110 = 4+2 = 6
111 = 4+2+1 = 7
011 = 2+1 = 3
这都是为什么 怎么加这些 ` 为什么加这些 有什么` 规则`

最简单的方法:
如二进制的“10110111011”:
换八进制时,从右到左,三位一组,不够补0,即成了:
010 110 111 011
然后每组中的3个数分别对应4、2、1的状态,然后将为状态为1的相加,如:
010 = 2
110 = 4+2 = 6
111 = 4+2+1 = 7
011 = 2+1 = 3
结果为:2673

而换十六进制时其实也类似,只要每组4位,分别对应8、4、2、1就行了,如分解为:
0101 1011 1011
运算为:
0101 = 4+1 = 5
1011 = 8+2+1 = 11(由于10为A,所以11即B)
1011 = 8+2+1 = 11(由于10为A,所以11即B)
结果为:5BB

10转2:短除2倒取余数
把十进制除以2得一商数和一余数;再将所得的商除以2,又得一个新的商和余数……这样不断地用功去除所得的商数,直到商等于0为止,每次相除所得的余数便是对应的二进制数的各位数字。第上次除得的余数在最低位有效位,最后一次得到的余数在最高位有效位。

10转16:短除16倒取余数(比较麻烦)或者先转2进制在背个2转16的表,2转16是每4位一隔,不足前补0,4位转1位
0000-0
0001-1
0010-2
0011-3
0100-4
0101-5
0110-6
0111-7
1000-8
1001-9
1010-A
1011-B
1100-C
1101-D
1110-E
1111-F

二进制有八位数组组成,分别代表

0 0 0 0 0 0 0 0 (八位数组)
7 6 5 4 3 2 1 0 (2的几次幂)
128 64 32 16 8 4 2